#include "SQLNullExpr.h"
#include "../../visitor/SQLASTVisitor.h"

SETCALSS(SQLNullExpr);

SQLNullExpr::SQLNullExpr()
{
}

SQLNullExpr::SQLNullExpr(SQLObject_ptr parent)
{
  this->parent = parent;
}

SQLNullExpr::~SQLNullExpr()
{
}

void SQLNullExpr::output(std::stringstream * buf)
{
  (*buf)<<"NULL";
}

void SQLNullExpr::accept0(SQLASTVisitor_ptr visitor)
{
  visitor->visit(SharedObject(SQLNullExpr));

  visitor->endVisit(SharedObject(SQLNullExpr));
}

// int SQLNullExpr::hashCode() {
// return 0;
//}

// BOOL_ptr SQLNullExpr::equals(Object o) {
// return o instanceof SQLNullExpr;
//}

SQLObject_ptr SQLNullExpr::clone()
{
  SQLObject_ptr clone_tmp = SQLNullExpr_ptr(new SQLNullExpr());
  SQLNullExpr_ptr clone_res = std::dynamic_pointer_cast<SQLNullExpr>(clone_tmp);

  return clone_res;
}